Yep, distributed.net has now polished off rc5-56 and is moving to rc5-64. We have 256 times as many keys to check, but the block sizes are the same. For more on "blocks" and "keys" see the glossary.
Quitting the client
Key blocks can take a while to process, depending on the speed of your processor. If you need to quit the client before it is done with the block it is working on, don't worry. It will log its position when it is quit and resume at that point the next time you start it up.
Running the client automatically
To have the client automatically start up checking keys every time you turn your Macintosh on, please consider putting an alias to it in your startup items folder. To do this, go to the Finder, select the client's icon (it looks like a cow), and then select “Make Alias” from the File menu. An alias file will appear; move the alias into the Startup Items folder inside your System Folder, and you're all set.
Libmoto
Libmoto, that nice shared-library from Motorola, does absolutely nothing in terms of increasing the speed of the client. The client uses integer math, not floating-point math (the kind Libmoto improves).
Crashes and client progress
If a crash occurs, the block that the client was working on is gone from your 'in buffer'. That block will not be fully processed by the client and will not get reported to the keyservers. Should we reach the end of the keyspace without finding the winning key, the proxy keyserver will start distributing all the blocks not reported in.
Recruiting
Once you get the hang of what is going on here and have started helping, recruit a friend or two to help. The more people we have going, the faster we'll break the code.
2. Setup
The client application is named RC5-64 Client.
The first time you run the client, it should present you with a screen that looks like the one below. (scroll down for rest of chapter)
All that you have to fill in here is YOUR email address. This means, not the email address of the team that you are going to join, as teams are being handled differently than before.
Next, you will see a screen that asks if you want to have the client be launched at startup by placing an alias in the Startup Items folder. If you want to run the client automatically at startup, click "Install Alias", otherwise click "Not Yet".
That's all there is to it! You are now setup to start cracking.
Client Menu Items
This is the "client" menu from the RC5-64 Client.
MacOS Client Settings...
This selection will bring up a window that looks like this:
The first box allows you to change how much time the client will spend checking keys between giving time to other applications. The higher the number, the faster the client will run, but the less responsive your system will be. 1000 milliseconds = 1 second.
The second box allows you to change how much time the client will spend checking keys while in the background (while your doing something else). You'll want a lower number for this setting than the top one.
The pull-down menu gives you three levels of control over how much time the client gives to other programs. The first setting (System & Other Apps) is equivalent to 2.004 and is the Mac-friendly way. The second setting (System Tasks Only) locks out other programs completely when the RC5 client is frontmost. The third setting (Nothing Else) also locks out drivers and extensions, freeing up almost all of the CPU for RC5. The RC5 Speedup extension is not recommended for use with version 2.001 and beyond.
You should be aware that file sharing actually runs as an invisible application rather than a system task, so if you don't give time to other applications then file sharing may not work.
The third box allows you to specify how many minutes without mouse movement the client will wait before bringing itself to the foreground.
The first check box will tell the client to place an alias of itself in the Startup Items folder of your system so that it turns on automatically at startup.
Finally, the last checkbox about generating a logfile should be checked as it enables graphing and does not detract from anything else.
Network Settings...
This selection will bring up a window that looks like this:
The first box allows you to change what email address you report. ENTER YOUR OWN EMAIL! Regardless of what evangelist or anyone else says, enter your own email, not the email of your team. Teams are being handled a different way for rc5-64 than they were before.
The second box, Number of input blocks to buffer:, allows you to change how many blocks are stored on your computer. The more blocks that you buffer, the less often you will have to connect to a keyserver to get more. To choose a good number of blocks to buffer, keep in mind that each block has a little more than 268 million keys.
The third box, Auto fetch if fewer than:, allows you to tell the client to fill your input buffer automatically if there are fewer blocks left in the input buffer than what you have specified here. This is to keep the client from running out of blocks and helping with sharing input buffers.
The fourth box, Number of output blocks to buffer:, allows you to change how many completed blocks are stored on your computer before it sends them to the server. The more blocks that you buffer, the less often you will have to connect to a keyserver to report them.
The fifth box, Switch to offline mode after: __ consecutive network failures, controls the behavior of the client when it's unable to connect to the server. To avoid wasting time by repeatedly attempting to connect when your Internet connection is down, the client will give up after the number tries specified here and switch to offline mode. If this happens, once you're able to restore your computer's network connection you should tell the client you're back online by switching offline mode back off from the Client menu. To make the client repeat a failed connection attempt forever rather than giving up, you can enter a zero in this box.
Finally, choose the correct radio button for your internet access capabilities. If you have a dialup account with an Internet Service Provider, click the top button. If you are using an HTTP proxy to reach the internet, choose the fourth button. If you are behind a firewall, try one of the middle 2 choices and see which works best for you.
Flush completed blocks
When you choose this menu item, the client will attempt to connect to the proxy keyserver and report all the blocks that are stored in the output buffer. If this action is completed successfully, your buff-in file will be deleted. The client will continue to process keys during this time.
Fetch key blocks
When you choose this menu item, the client will attempt to connect to the proxy keyserver and fill its input buffer. The client will continue to process keys during this time.
Run Offline
When you select this menu item, the client will not try to initiate any kind of internet connection. This is good for networked macs that are not directly connected to the Internet, or for systems on dialup connections that aren't active 24 hours a day. A check mark will appear beside the item to indicate that you're offline. To switch back online, select the menu item a second time.
Quit Other Applications
When you select this option, the client will quit all other applications that are currently running, including the finder. To resume normal operation of the computer, quit the client.
Window Menu Items
This is the "Window" menu from Bovine RC5 v2.001.
The graphs are derived from the logfile. For graphing to work, your time zone must be set in the Date & Time control panel. For more info about the logfile, please refer to upcoming chapter, The Logfile.
The Status Window (Command-S)
This is the status window of the v2.001 client. It is divided into three sections. The top section contains the main progress bar. This shows you how far through your current block you are. In the picture above, it is at about 15%. The middle section contains two smaller progress bars, and tells you about the status of your buffers. Any server or client messages that appear will appear at the bottom of this box. In the above picture, the client has 199 blocks left to process and has completed 1 block.
Key Rate (Command-R)
This selection will bring up a window that looks like this:
This is a graph of the average kkeys/sec for the RC5-64 Client. Each peak on the graph is a logfile entry. Every time that your client finishes a block or shuts down, it writes that information in the logfile, and another point is added to the graph. The client figures out the time at which you completed that block (the x-axis of the graph), and the average kkeys/sec during the time you were working on that block (the y-axis of the graph). The number of kkeys/sec for the top line of the graph is labeled in the upper left corner.
Total Keys (Command-T)
This selection will bring up a window that looks like this:
The "Total Keys" that is being referred to here, is the total number of keys that your client has checked since the first time that the logfile was kept (probably when you first ran the client). The total number of keys is updated after each block, and the total is listed in the upper left corner of this window. Notice the dates along the bottom to help measure progress.
Close and Close All (Command-W)
Close will close the window you are currently looking at, and Close All will close all windows.
Update All (Command-U)
Update All will update all windows. This is handy for network macs sharing a single buffer file.
The File Package
This is a picture of a typical RC5 for MacOS 2.001 folder, after you have run the client once and completed at least one block. Please take not of the 6 different files and 2 folder
1. Read me FIRST! was written by Andrew Meggs <insect@antennahead.com>. You really should read this file to get information from the clients's author about any specific information that may affect you.
2. RC5-64 Client - This is the client application. Like all other applications, it will open with a double-click. For more info on how to set up the client, go to the chapter called "Settings/Prefs".
3. buff-in - when your client contacts the keyserver to get more blocks of keys to work on, it stores the blocks to work on in this file.
4. buff-out - this is the file where your client stores the completed blocks of keys that it has done. This file must be in the same folder as the client application in order to report the work that you have done!
5. RC5 Preferences - This file stores all your settings, such as your email address, how many blocks of keys you want to buffer, and anything else you may have tweaked in the client and network settings. This file can be opened by a plain-text editor, such as SimpleText, or BBEdit, and you can see what your settings look like. This is useful for comparing settings with other people not using the same interface. This file is equivalent to the .ini files on other platforms running the Bovine client.
6. RC5 Logfile - this is the file where your client stores all the information about everything it has ever done. Detailed information about the logfile in the next chapter.
7. Useful Applescripts - this folder contains a startup script. For more information, please read the "about scripts" file included in that folder.
8. Information - The Information folder contains this documentation file and two Netscape Navagator bookmarks: Distributed.Net, the definitive source for Bovine RC5 information, and RC5-Mac, the complete source of Macintosh Bovine RC5 information.
Glossary
Client - The application that you run to process keys.
RC5 - An encryption algorithm that we are trying to break.
Keyserver - A computer that sends out blocks of keys to your client for processing.
Keyspace - The set of the 2^64 keys.
Block - A group of 268,435,456 keys. There are a total of 268,435,456 blocks to be checked.
Output buffer - The place where the client stores blocks it has already processed. See also buff-out under the section Bovine Files.
Input buffer - The place where the client stores blocks it has yet to process. See also buff-in under the section Bovine Files.
Flush - The process by which the client empties its output buffer.
Fetch - The process by which the client fills its input buffer.
Proxy Keyserver - A server that distributes the load of keyblock requests to all the other keyservers. The proxy keyserver for this project in the U.S. is rc5proxy.distributed.net, and in Europe it is rc5europroxy. distributed.net.
Contacts
MacOS Help:
RC5-Mac Website <http://www.distributed-mac.net/>
Nate Begeman, Keeper of the FAQ and Docs <sampo@triton.net>
RC5Mac mailing list: This is a mailing list run by Shea Tisdale that is for discussion related to the MacOS RC5 client. New and experienced users are welcome. To join do the following: send a message to <listserv@galactus.signalinc.com> with the text "subscribe rc5mac" in the body of the message.
Fore more contact information, see the "Read Me First" file included with the client.
General RC5 help:
Support and questions not specific to the Mac client: <rc5help@slacker.com>
Distributed.Net <http://www.distributed.net/> is running the RC5 challenge.
Statistics are available at <http://rc5stats.distributed.net/>.
MacOS client, user interface, and PowerPC & 68k cores:
Andrew Meggs <insect@antennahead.com>
This document was written by Nate Begeman (sampo@triton.net).